package lifi

type Source interface {
	Init() error

	Gather(Collector) error

	Close() error
}

type StreamingSource interface {
	Source

	Start(Collector) error

	// Stop stops the services and closes any necessary channels and connections.
	// Metrics should not be written out to the accumulator once stop returns, so
	// Stop() should stop reading and wait for any in-flight metrics to write out
	// to the accumulator before returning.
	Stop()
}
